package com.gdwstudy.encapsulation;



import javax.imageio.plugins.jpeg.JPEGImageReadParam;
import java.util.Scanner;

public class Encap01 {
    public static void main(String[] args) {
        Person person = new Person();
        person.name = "关道伟";
        person.setAge(22);
        person.setSal(30000);
        person.setName("河大研究生");
        person.info();
        Double sal = person.getSal();
        if(sal!= null){
            System.out.println(sal);
        }
        Person person1 = new Person("关道伟", 2000, 30000);
        person1.info();
    }
}

class Person{
    String name;//名字公开
    private int age;//年龄私有
    private double sal;//工资私有
//使用构造器时set方法可能无法生效
//    此时我们在构造器的内部再使用set方法来初始化属性
    public Person() {
    }
//此时使用构造器属性设置也会受控制
    public Person(String name, int age, double sal) {
        setName(name);
        setAge(age);
        setSal(sal);
    }

    //手写set get太慢了
    public void setName(String name){
        if(name.length()>1&&name.length()<=6){
            this.name = name;
        }else{
            System.out.println("你输入的名字不合法（2-6字符），请重新输入");
            return;
        }
    }
    //快捷键

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if(age>0&&age<150){
            this.age = age;
        }else{
            System.out.println("你输入的年龄不合法（1-150）,默认置为18岁");
            this.age = 18;
        }
    }

    public Double getSal() {
        System.out.println("访问薪资需要权限密码，请输入>");
        Scanner scanner = new Scanner(System.in);
        String password = scanner.next();
        if(password.equals("123456")){
            return sal;
        }else{
            System.out.println("权限密码不正确，你无法查看");
            return null;
        }
    }

    public void setSal(double sal) {
        this.sal = sal;
    }

    public void info(){

        System.out.println("信息如下:"+" 姓名 "+name +" 年龄 "+age +" 薪水 "+ sal);
    }
}
